﻿/****************************************************************
Architecture:
Mohammad Ashraful Alam, Microsoft MVP 2007-2010
Portfolio: http://www.ashraful.net
***************************************************************/
using System;
using System.Collections.Generic;
using DaXDD.DataContainers;
namespace DaXDD.DataAccess.Model.IDataAccess
{
    public partial interface IEmployeeDAO
    {
        int CreateNewEmployee(Employee newEmployee);
        bool DeleteEmployee(Employee toBeDeletedEmployee);
        bool DeleteEmployees(System.Collections.ObjectModel.Collection<int> employeesIdsToDelete);
        List<Employee> GetAllEmployees();
        List<Employee> GetAllEmployeesPaged(string orderBy, int startRowIndex, int maximumRows);
        int GetAllEmployeesPagedCount(string orderBy, int startRowIndex, int maximumRows);
        Employee GetEmployeeByEmployeeId(int employeeId);
        List<Employee> GetEmployeesByReportsTo(int? reportsTo);
        List<Employee> GetEmployeesByReportsToPaged(int? reportsTo, string orderBy, int startRowIndex, int maximumRows);
        int GetEmployeesByReportsToPagedCount(int? reportsTo, string orderBy, int startRowIndex, int maximumRows);
        bool UpdateEmployee(Employee updatedEmployee);
    }
}
